package com.woniuxy.test_likedlist;

/**
 * description: SxLinkedList01 <br>
 * date: 2022/2/3 2:16 下午 <br>
 * author: shesaifei <br>
 * version: 1.0 <br>
 */

/**
 * 自定义一个链表
 */
public class SxLinkedList01 {
    private Node first; //第一个节点
    private Node last;  //最后一个节点

    private int size;


    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("[");
        Node temp = first;
        //挨个遍历链表中的元素
        while (temp != null) {
            sb.append(temp.element + ",");
            temp = temp.next;
        }
        sb.setCharAt(sb.length() - 1, ']');
        return sb.toString();
    }

    /**
     * 第一次:[]
     * 第二次:["a"]
     * 第三次:["a","b"]
     *
     * @param obj
     */
    public void add(Object obj) {
        //创建一个节点：需要上一个元素和下一个元素
        Node node = new Node(obj);
        if (first == null) {  //第一次往里面放数据
            first = node;
            last = node;
        } else {

            node.previous = last; //第二次上一个节点就是第一次的最后的节点
            node.next = null; //刚加的数据我就是最后一个数据，没有下一个数据，所以为空

            last.next = node;
            last = node;
        }
        size++;
    }


    public static void main(String[] args) {

        SxLinkedList01 list01 = new SxLinkedList01();
        list01.add("a");
        list01.add("b");
        list01.add("c");
        System.out.println(list01);
    }

}
